Custom Validation তৈরি করা

Microsoft Technologies - এএসপি ডট নেট কোর (ASP.Net Core) বাইন্ডিং এবং ভ্যালিডেশন (Model Binding and Validation) |
207
207

ASP.NET Core-এ ডেটা ভ্যালিডেশনের জন্য সাধারণত Data Annotations ব্যবহার করা হয়। তবে কখনও কখনও ডিফল্ট ভ্যালিডেশন যথেষ্ট না হলে, ডেভেলপাররা কাস্টম ভ্যালিডেশন তৈরি করতে পারেন। কাস্টম ভ্যালিডেশন আপনাকে আপনার নির্দিষ্ট লজিকের ভিত্তিতে ডেটা যাচাই করার সুযোগ দেয়।


Custom Validation তৈরি করার ধাপ

১. কাস্টম ভ্যালিডেশন অ্যাট্রিবিউট তৈরি করা

আপনার ভ্যালিডেশন লজিক তৈরির জন্য একটি ক্লাস তৈরি করুন, যা ValidationAttribute থেকে ইনহেরিট করবে। উদাহরণস্বরূপ, নিচে একটি কাস্টম ভ্যালিডেশন দেখানো হলো, যা চেক করে যে একটি নাম অক্ষর দিয়ে শুরু হচ্ছে কিনা:

using System.ComponentModel.DataAnnotations;

public class StartsWithLetterAttribute : ValidationAttribute
{
    private readonly char _letter;

    public StartsWithLetterAttribute(char letter)
    {
        _letter = letter;
    }

    protected override ValidationResult IsValid(object value, ValidationContext validationContext)
    {
        if (value is string stringValue && !stringValue.StartsWith(_letter))
        {
            return new ValidationResult($"The field must start with the letter '{_letter}'.");
        }

        return ValidationResult.Success;
    }
}

২. মডেল ক্লাসে অ্যাট্রিবিউট প্রয়োগ করা

মডেল ক্লাসে আপনার তৈরি করা কাস্টম ভ্যালিডেশন অ্যাট্রিবিউট ব্যবহার করুন।

public class Product
{
    public int Id { get; set; }

    [StartsWithLetter('P')]
    public string Name { get; set; }

    public decimal Price { get; set; }
}

৩. Controller-এ মডেলের ডেটা যাচাই করা

Controller-এ মডেলের ডেটা যাচাই করা হয় এবং ত্রুটি পাওয়া গেলে তা ব্যবহারকারীর কাছে দেখানো হয়।

public class ProductsController : Controller
{
    [HttpPost]
    public IActionResult Create(Product product)
    {
        if (ModelState.IsValid)
        {
            // মডেলটি সঠিক, ডেটা সেভ করুন
            return RedirectToAction("Index");
        }

        // মডেলে ত্রুটি আছে, ভিউতে ফিরে যান
        return View(product);
    }
}

Custom Validation ব্যবহার করার পদ্ধতি

১. সিঙ্ক্রোনাস কাস্টম ভ্যালিডেশন

আপনার ভ্যালিডেশন সিঙ্ক্রোনাস (সাধারণ পদ্ধতিতে) তৈরি করলে তা মডেলের ডেটা সাবমিটের সময়ই যাচাই হবে। এটি উপরের উদাহরণে দেখানো হয়েছে।

২. অ্যাসিঙ্ক্রোনাস কাস্টম ভ্যালিডেশন

কখনও কখনও ভ্যালিডেশন অ্যাসিঙ্ক্রোনাস হতে পারে, যেমন ডাটাবেস থেকে ডেটা যাচাই করা। এর জন্য IValidatableObject ইন্টারফেস ব্যবহার করা যায়।

using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Threading.Tasks;

public class Product : IValidatableObject
{
    public int Id { get; set; }
    public string Name { get; set; }

    public async Task<IEnumerable<ValidationResult>> ValidateAsync(ValidationContext validationContext)
    {
        var validationResults = new List<ValidationResult>();

        if (Name.Length < 5)
        {
            validationResults.Add(new ValidationResult("Name must be at least 5 characters long."));
        }

        return validationResults;
    }
}

Custom Validation মেসেজ কাস্টমাইজ করা

আপনার ভ্যালিডেশন মেসেজ কাস্টমাইজ করতে ErrorMessage প্রপার্টি ব্যবহার করুন:

[StartsWithLetter('P', ErrorMessage = "The name must start with the letter 'P'.")]
public string Name { get; set; }

Custom Validation ত্রুটি ভিউতে দেখানো

ASP.NET Core ভ্যালিডেশন ত্রুটি প্রদর্শনের জন্য ModelState এবং Tag Helpers ব্যবহার করে। উদাহরণ:

<form asp-action="Create">
    <div>
        <label asp-for="Name"></label>
        <input asp-for="Name" />
        <span asp-validation-for="Name" class="text-danger"></span>
    </div>
    <button type="submit">Submit</button>
</form>

ভ্যালিডেশন ত্রুটি প্রদর্শনের জন্য Validation Summary ব্যবহার করতে পারেন:

<div asp-validation-summary="All" class="text-danger"></div>

Custom Validation এর সুবিধা

  • নিয়ন্ত্রিত ভ্যালিডেশন: নির্দিষ্ট লজিক বা প্রয়োজনীয়তা অনুযায়ী ডেটা যাচাই করা যায়।
  • পুনঃব্যবহারযোগ্যতা: একবার তৈরি করলে এটি সহজেই অন্যান্য মডেলে ব্যবহার করা যায়।
  • কোডের সাদৃশ্য: ভ্যালিডেশন লজিক Controller বা View-এর পরিবর্তে Model লেভেলে থাকে।

Custom Validation ASP.NET Core অ্যাপ্লিকেশনে ডেটা যাচাই করার জন্য একটি শক্তিশালী টুল। এটি ডেভেলপারদের নির্দিষ্ট লজিক বাস্তবায়ন করার সুযোগ দেয় এবং অ্যাপ্লিকেশনকে আরও কার্যকর এবং ব্যবহারকারীবান্ধব করে তোলে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion